package com.ctg.behavior.common.usersequence;

import java.util.ArrayList;
import java.util.List;

import com.ctg.behavior.common.CtgPageBody;
import com.ctg.behavior.common.calc.CtCalcBody;
import com.ctg.behavior.common.consts.CtCalcConsts;

import lombok.Data;
import lombok.EqualsAndHashCode;

/*
 * 接口： 行为序列(按小时) 、行为序列(按明细)
 */
@EqualsAndHashCode(callSuper = false)
@Data
public class CtUSCalcBody extends CtgPageBody implements CtCalcBody {

//	/*
//		"userId": "1873205328273560986",
//		"deviceId": "004def47c1ce57cc",
//		"useDistinct": false,
//		"sequenceFromDate": "2021-05-31",
//		"sequenceToDate": "2021-06-04",
//		"unit": "week",
//		"fromDate": "2021-05-31",
//		"toDate": "2021-06-04",
//		"events": [
//			"_AppClick",
//			"_AppEnd"
//		],
//		"properties": [
//			"_distinct_id",
//			"_ip"
//		],
//		"loadType": "hour",
//		"sequenceAsc": false,
//		"useVirtualEvent": false
//	 */

	private String userId;
	private String deviceId;
	private Boolean useDistinct = false;

//	// 格式：YYYY-MM-DD
//	private String sequenceFromDate;
//	// 格式：YYYY-MM-DD
//	private String sequenceToDate;
	// 数据开始时间,格式：YYYY-MM-DD
	private String fromDate;
	// 数据开始时间,格式：YYYY-MM-DD
	private String toDate;
	// 详见UNIT定义
	private String unit = CtCalcConsts.UNIT_TYPE_DAY;
	// 统计事件
	private List<String> events = new ArrayList<>();
	// 加载的属性
	private List<String> properties = new ArrayList<>();
	// 是否按时间累加载数据
	private String loadType = CtCalcConsts.LOAD_TYPE_HOUR;
	// 按事件时间： 升序-true / 降序-false
	private Boolean sequenceAsc = false;
	// 是否启用虚拟事件
	private Boolean useVirtualEvent = false;

}
